package cn.yunbamboos.rest.service.anno;

import org.springframework.web.bind.annotation.RequestMethod;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RestServiceMapping {

    String[] url() default {};

    /**
     * 请求方法
     */
    RequestMethod[] method() default {};

    /**
     * 服务名称
     *
     * @return 服务名称
     */
    String name() default "";

    /**
     * 调用权限认证
     *
     * @return 是否需要认证
     */
    boolean authentication() default true;

    /**
     * 是否记录调用日志
     *
     * @return 是否记录调用日志
     */
    boolean log() default true;

    /**
     * 请求的Content-Type 默认: application/json
     */
    String[] consumes() default {"application/json"};

    /**
     * 响应的Content-Type 默认: application/json
     */
    String[] produces() default {"application/json"};

}
